Thực đơn
NoSQL Phân loại và các ví dụ về các cơ sở dữ liệu NoSQLCó nhiều cách phân loại các cơ sở dữ liệu NoSQL khác nhau, mỗi loại với các loại và loại con khác nhau, một số trong số đó có thể chồng chéo lên nhau. Một phân loại cơ bản dựa trên mô hình dữ liệu, với các ví dụ:
Một phân loại chi tiết hơn như sau, dựa trên cách phân loại của Stephen Yen:[20]
Loại | Ví dụ |
---|---|
Key-Value Cache | Coherence, eXtreme Scale, GigaSpaces, GemFire, Hazelcast, Infinispan, JBoss Cache, Memcached, Repcached, Terracotta, Velocity |
Key-Value Store | Flare, Keyspace, RAMCloud, SchemaFree, Hyperdex, Aerospike |
Key-Value Store (Eventually-Consistent) | DovetailDB, Oracle NoSQL Database, Dynamo, Riak, Dynomite, MotionDb, Voldemort, SubRecord |
Key-Value Store (Ordered) | Actord, FoundationDB, Lightcloud, LMDB, Luxio, MemcacheDB, NMDB, Scalaris, TokyoTyrant |
Máy chủ Cấu trúc dữ liệu | Redis |
Tuple Store | Apache River, Coord, GigaSpaces |
Cơ sở dữ liệu đối tượng | DB4O, Objectivity/DB, Perst, Shoal, ZopeDB |
Document Store | Clusterpoint, Couchbase, CouchDB, DocumentDB, Lotus Notes, MarkLogic, MongoDB, Qizx, RethinkDB, XML-databases |
Wide Column Store | BigTable, Cassandra, Druid, HBase, Hypertable, KAI, KDI, OpenNeptune, Qbase |
Các cơ sở dữ liệu tương quan là mô hình độc lập, và thay vì là kho lưu trữ theo hàng hoặc theo cột, nó lại lưu trữ dựa trên giá trị.
Kho lưu trữ khóa-giá trị (Key-value: KV) sử dụng mảng kết hợp (còn được gọi là bản đồ hoặc từ điển) như là mô hình dữ liệu cơ bản của chúng. Trong mô hình này, dữ liệu được biểu diễn như một bộ sưu tập các cặp khóa-giá trị, như vậy mỗi khoá có thể xuất hiện chỉ một lần trong bộ sưu tập.[21][22]
Mô hình khóa-giá trị là một trong những mô hình dữ liệu không tầm thường đơn giản nhất, và các mô hình dữ liệu phong phú hơn thường được thực hiện như một phần mở rộng của nó. Mô hình khóa-giá trị có thể được mở rộng tới một mô hình ra lệnh rời rạc, duy trì các khóa trong lệnh từ điển.Phần mở rộng này có khả năng tính toán mạnh mẽ, trong đó nó có thể truy hồi hiệu quả các dãy khóa chọn lọc.[23]
Các kho lưu trữ khóa-giá trị có thể sử dụng các mô hình thống nhất bao gồm từ thống nhất cuối cùng cho đến serializability. Một số cơ sở dữ liệu hỗ trợ đặt lệnh của các khóa. Có nhiều triển khai phần cứng khác nhau, và một số người dùng duy trì dữ liệu trong bộ nhớ (RAM), trong khi những người khác sử dụng ổ SSD hoặc đĩa cứng.
Các ví dụ bao gồm cơ sở dữ liệu Oracle NoSQL, Redis, và dbm.
Khái niệm trung tâm của một kho lưu trữ tài liệu là khái niệm về "tài liệu". Trong khi mỗi cơ sở dữ liệu hướng tài liệu thực hiện khác nhau về chi tiết của định nghĩa này, nói chung, tất cả chúng đều giả định rằng các tài liệu đóng gói và mã hóa dữ liệu (hoặc thông tin) trong một số định dạng hoặc mã hóa tiêu chuẩn. Mã hóa được sử dụng bao gồm XML, YAML, và JSON cũng như các dạng nhị phân như BSON. Các tài liệu được định địa chỉ trong cơ sở dữ liệu thông qua một từ khóa duy nhất đại diện cho tài liệu đó. Một trong những đặc điểm định nghĩa khác của một cơ sở dữ liệu hướng tài liệu là ngoài việc tra cứu từ khóa được thực hiện bởi một kho lưu trữ khóa-giá trị, cơ sở dữ liệu đó còn cung cấp một API hoặc ngôn ngữ truy vấn để lấy tài liệu dựa trên nội dung của chúng
Những triển khai khác nhau cung cấp nhiều cách khác nhau để tổ chức và / hoặc nhóm các tài liệu:
So với cơ sở dữ liệu quan hệ, ví dụ, các bộ sưu tập có thể được coi là tương tự như các bảng biểu và các tài liệu tương tự như các hồ sơ/bản ghi. Nhưng chúng là khác nhau: mỗi bản ghi trong một bảng có cùng một trình tự của các miền, trong khi các tài liệu trong bộ sưu tập có thể có các miền hoàn toàn khác nhau.
Loại cơ sở dữ liệu này được thiết kế cho dữ liệu có quan hệ cũng được biểu diễn như một đồ thị bao gồm các yếu tố kết nối qua lại với một số hữu hạn các quan hệ giữa chúng. Loại dữ liệu này có thể là các mối quan hệ xã hội, liên kết giao thông công cộng, bản đồ đường bộ hoặc các topo mạng.
Tên | Ngôn ngữ | Ghi chú |
---|---|---|
AllegroGraph | SPARQL | RDF triple store |
DEX/Sparksee | C++, Java, .NET, Python | Graph database |
FlockDB | Scala | Graph database |
IBM DB2 | SPARQL | RDF triple store added in DB2 10 |
InfiniteGraph | Java | Graph database |
MarkLogic | Java, JavaScript, SPARQL, XQuery | Multi-model document database and RDF triple store |
Neo4j | Cypher | Graph database |
OWLIM | Java, SPARQL 1.1 | RDF triple store |
Oracle | SPARQL 1.1 | RDF triple store added in 11g |
OrientDB | Java | Multi-model document and graph database |
Sqrrl Enterprise | Java | Graph database |
OpenLink Virtuoso | C++, C#, Java, SPARQL | Middleware and database engine hybrid |
Stardog | Java, SPARQL | Graph database |
Thực đơn
NoSQL Phân loại và các ví dụ về các cơ sở dữ liệu NoSQLLiên quan
NoSQL Nosliw Rodríguez NosálovTài liệu tham khảo
WikiPedia: NoSQL http://databases.about.com/od/specificproducts/a/a... http://www.allthingsdistributed.com/2012/01/amazon... http://www.couchbase.com/sites/default/files/uploa... http://db-engines.com/en/ranking http://www.dummies.com/how-to/content/10-nosql-mis... http://www.eventbrite.com/e/nosql-meetup-tickets-3... http://www.gennet.com/big-data/cant-joins-marklogi... http://www.infoq.com/articles/graph-nosql-neo4j http://www.journalofcloudcomputing.com/content/pdf... http://www.leavcom.com/pdf/NoSQL.pdf